r_anal_sources = [
  'anal.c',
  'bb.c',
  'block.c',
  'function.c',
  'jmptbl.c',
  'cc.c',
  'class.c',
  'cond.c',
  'cycles.c',
  'data.c',
  'diff.c',
  'esil.c',
  'esil2reil.c',
  'esil_stats.c',
  'esil_trace.c',
  'esil_interrupt.c',
  'esil_sources.c',
  'esil_cfg.c',
  'esil_dfg.c',
  'fcn.c',
  'flirt.c',
  'hint.c',
  'labels.c',
  'meta.c',
  'op.c',
  'pin.c',
  'reflines.c',
  'rtti.c',
  'rtti_msvc.c',
  'rtti_itanium.c',
  'sign.c',
  'switch.c',
  'type.c',
  'type_pdb.c',
  'dwarf_process.c',
  'value.c',
  'var.c',
  'vtable.c',
  'xrefs.c',
  'p/anal_6502.c',
  'p/anal_6502_cs.c',
  'p/anal_8051.c',
  'p/anal_amd29k.c',
  'p/anal_arc.c',
  'p/anal_arm_cs.c',
  'p/anal_arm_gnu.c',
  'p/anal_avr.c',
  'p/anal_bf.c',
  'p/anal_chip8.c',
  'p/anal_cr16.c',
  'p/anal_cris.c',
  'p/anal_dalvik.c',
  'p/anal_ebc.c',
  'p/anal_gb.c',
  'p/anal_h8300.c',
  'p/anal_hexagon.c',
  'p/anal_i4004.c',
  'p/anal_i8080.c',
  'p/anal_java.c',
  'p/anal_m68k_cs.c',
  'p/anal_m680x_cs.c',
  'p/anal_malbolge.c',
  'p/anal_mcore.c',
  'p/anal_mips_cs.c',
  'p/anal_mips_gnu.c',
  'p/anal_msp430.c',
  'p/anal_nios2.c',
  'p/anal_null.c',
  'p/anal_or1k.c',
  'p/anal_pic.c',
  'p/anal_ppc_cs.c',
  'p/anal_ppc_gnu.c',
  'p/anal_propeller.c',
  'p/anal_pyc.c',
  'p/anal_riscv.c',
  'p/anal_rsp.c',
  'p/anal_sh.c',
  'p/anal_snes.c',
  'p/anal_sparc_cs.c',
  'p/anal_sparc_gnu.c',
  'p/anal_sysz.c',
  'p/anal_tms320.c',
  'p/anal_tms320_c55x_plus.c',
  #'p/anal_tms320c64x.c',
  'p/anal_tricore.c',
  'p/anal_v810.c',
  'p/anal_v850.c',
  'p/anal_vax.c',
  'p/anal_wasm.c',
  'p/anal_ws.c',
  'p/anal_x86_cs.c',
  'p/anal_xap.c',
  'p/anal_xcore_cs.c',
  'p/anal_xtensa.c',
  'p/anal_z80.c',
  #'arch/gb/meta_gb_cmt.c',
  'arch/hexagon/hexagon_anal.c',
  '../asm/arch/amd29k/amd29k.c',
  '../asm/arch/arm/winedbg/be_arm.c',
  '../asm/arch/cr16/cr16_disas.c',
  '../asm/arch/ebc/ebc_disas.c',
  '../asm/arch/h8300/h8300_disas.c',
  '../asm/arch/hexagon/hexagon.c',
  '../asm/arch/hexagon/hexagon_disas.c',
  '../asm/arch/mcore/mcore.c',
  '../asm/arch/msp430/msp430_disas.c',
  '../asm/arch/or1k/or1k_disas.c',
  '../asm/arch/pic/pic_midrange.c',
  '../asm/arch/ppc/libvle/vle.c',
  '../asm/arch/propeller/propeller_disas.c',
  '../asm/arch/rsp/rsp_idec.c',
  '../asm/arch/tms320/tms320_dasm.c',
  '../asm/arch/tms320/c55x_plus/ins.c',
  '../asm/arch/tms320/c55x_plus/c55plus.c',
  '../asm/arch/tms320/c55x_plus/c55plus_decode.c',
  '../asm/arch/tms320/c55x_plus/decode_funcs.c',
  '../asm/arch/tms320/c55x_plus/hashtable.c',
  '../asm/arch/tms320/c55x_plus/utils.c',
  '../asm/arch/v810/v810_disas.c',
  '../asm/arch/v850/v850_disas.c',
  '../asm/arch/wasm/wasm.c',
  '../asm/arch/xtensa/gnu/xtensa-dis.c',
  '../asm/arch/xtensa/gnu/elf32-xtensa.c',
  '../asm/arch/xtensa/gnu/xtensa-isa.c',
  '../asm/arch/xtensa/gnu/xtensa-modules.c',
  '../asm/arch/pyc/opcode_10.c',
  '../asm/arch/pyc/opcode_11.c',
  '../asm/arch/pyc/opcode_12.c',
  '../asm/arch/pyc/opcode_13.c',
  '../asm/arch/pyc/opcode_14.c',
  '../asm/arch/pyc/opcode_15.c',
  '../asm/arch/pyc/opcode_16.c',
  '../asm/arch/pyc/opcode_20.c',
  '../asm/arch/pyc/opcode_21.c',
  '../asm/arch/pyc/opcode_22.c',
  '../asm/arch/pyc/opcode_23.c',
  '../asm/arch/pyc/opcode_24.c',
  '../asm/arch/pyc/opcode_25.c',
  '../asm/arch/pyc/opcode_26.c',
  '../asm/arch/pyc/opcode_27.c',
  '../asm/arch/pyc/opcode_2x.c',
  '../asm/arch/pyc/opcode_30.c',
  '../asm/arch/pyc/opcode_31.c',
  '../asm/arch/pyc/opcode_32.c',
  '../asm/arch/pyc/opcode_33.c',
  '../asm/arch/pyc/opcode_34.c',
  '../asm/arch/pyc/opcode_35.c',
  '../asm/arch/pyc/opcode_36.c',
  '../asm/arch/pyc/opcode_37.c',
  '../asm/arch/pyc/opcode_38.c',
  '../asm/arch/pyc/opcode_39.c',
  '../asm/arch/pyc/opcode_3x.c',
  '../asm/arch/pyc/opcode_anal.c',
  '../asm/arch/pyc/opcode_arg_fmt.c',
  '../asm/arch/pyc/opcode.c',
  '../asm/arch/pyc/pyc_dis.c'
]

r_anal_inc = [
  platform_inc,
  include_directories(
    'arch/gb',
    'arch/hexagon',
  )
]

r_anal = library('r_anal', r_anal_sources,
  include_directories: r_anal_inc,
  c_args: library_cflags,
  dependencies: [
    r_util_dep,
    r_reg_dep,
    r_asm_dep,
    r_crypto_dep,
    r_search_dep,
    r_cons_dep,
    r_parse_dep,
    r_syscall_dep,
    r_flag_dep,
    r_hash_dep,
    java_dep,
    capstone_dep
  ],
  install: true,
  implicit_include_directories: false,
  soversion: r2_libversion
)

r_anal_dep = declare_dependency(link_with: r_anal,
                                include_directories: r_anal_inc)

pkgconfig_mod.generate(r_anal,
  subdirs: 'libr',
  version: r2_version,
  name: 'r_anal',
  filebase: 'r_anal',
  libraries: pkgcfg_sanitize_libs,
  requires: [
    'r_util',
    'r_reg',
    'r_asm',
    'r_crypto',
    'r_parse',
    'r_syscall',
    'r_search',
    'r_cons',
    'r_flag'
  ],
  description: 'radare foundation libraries'
)
